#pragma once
#include <list>
#include <SFML/Graphics.hpp>
#include "Tank.h"
#include <stack>

namespace cat
{
	class ControllerBase
	{
	protected:
		virtual void think(void) = 0;
		virtual void treatEvent(sf::Event& event) = 0;
		Tank& _tank;
		struct ControlPosition { double x, y; } _controlPosition;

	public:
		ControllerBase(Tank& tank);
		static void thinkEach(void);
		Tank& getTank(void) { return _tank; }
		ControlPosition getControlPosition(void) { return _controlPosition; }
	};
}

